package com.example.testlxr9096.itemActivity;

import android.content.Intent;
import android.os.Bundle;

import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.example.testlxr9096.ModbusClientManager;
import com.example.testlxr9096.ModbusTCPClient;
import com.example.testlxr9096.R;
import com.example.testlxr9096.ThreadPoolManager;
import com.example.testlxr9096.adapter.DetectItemAdapter;
import com.example.testlxr9096.adapter.GridSpacingItemDecoration;
import com.example.testlxr9096.adapter.IoAdapter;
import com.example.testlxr9096.adapter.SingleSelectAdapter;
import com.example.testlxr9096.adapter.TitleItemAdapter;
import com.example.testlxr9096.bean.IoItem;
import com.example.testlxr9096.bean.Item;
import com.example.testlxr9096.bean.KeyValuePair;
import com.example.testlxr9096.bean.TestRecord;
import com.example.testlxr9096.bean.TitleItem;
import com.example.testlxr9096.database.AppDatabase;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class XianLangTestActivity extends AppCompatActivity {

    private ModbusTCPClient modbusClient,modbusTCPClient2;



    private RecyclerView recyclerView,recyclerViewDecdect,rv_selcet,rv_title;

    private  ScheduledExecutorService scheduler,scheduler1;
    private IoAdapter adapter;

    private int testType = -1;

    private DetectItemAdapter detectItemAdapter;

    private SingleSelectAdapter singleSelectAdapter;
    private TitleItemAdapter titleItemAdapter;
    private List<IoItem> ioItems;



    private List<IoItem> dectectItems;
    private List<KeyValuePair> keyValuePairsList;
    private List<Item> itemList;
    private List<TitleItem> titleItems;
    private List<Integer> is_1_listPosition;

    private int testPosition  = -1;

    private int[] values;
    private int type ;
    private ThreadPoolManager threadPoolManager;

    List<List<Integer>> listOfLists ;
    private  int itemPosition , clickNum;
    private ModbusClientManager manager ;
    private TextView tv_detectResult,tv_checkResult;
    private   Button btn_startDetect,bt_manualDetect,bt_singleTest,btn_help,btn_back;
    private boolean isOnClick,isItemSelcet,isStart,isConnect,isStartDetect,isopen,isHandOpen,isSingleOpen;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initData();
        initBottonButtons();

        initView();
        initRecycleView();

        initDectRecycleView();
        initXianRecycleView();

    }
    private void initData() {
        threadPoolManager = ThreadPoolManager.getInstance();


        manager = ModbusClientManager.getInstance();
        modbusClient = manager.getDevice1();
        modbusTCPClient2 = manager.getDevice2();
        // 初始化 Modbus 客户端（替换为你的设备 IP 和端口）
        ioItems = new ArrayList<>();
        is_1_listPosition = new ArrayList<>();
        itemList = new ArrayList<>();
        titleItems = new ArrayList<>();
        listOfLists = new ArrayList<>(4);
        itemList.clear();
        dectectItems = new ArrayList<>();

        String[] XianLangArray = {
                "Q0.0",  "Q0.1"//,  "Y02", "Y03", "Y04", "Y05", "Y06", "Y07", "Y08", "Y09", "Y0A", "Y0B", "Y0C", "Y0D", "Y0E", "Y0F"

        };

        String hexArray[] = null ;

        String[] XianArray = {
                "T1",  "T2", "T3", "T4", "T5", "T6", "T7", "T8", "R1", "R2", "R3", "R4", "R5", "R6", "R7", "R8",
        };

            hexArray = XianLangArray;
        for (int i =0;i<hexArray.length;i++){
            ioItems.add(new IoItem(hexArray[i]));
        }

        for (int i =0;i<XianArray.length;i++){
            itemList.add(new Item(XianArray[i],XianArray[i],0,0,false));
//            titleItems.add(new TitleItem(XianArray[i]));
        }

        for (int i =0;i<64;i++){

               dectectItems.add(new IoItem(String.valueOf(i+1)));



            }
        keyValuePairsList = new ArrayList<>();
        addData();






    }

    private void initBottonButtons() {
        // 通过 include 的 id 获取按钮
        View includeView = findViewById(R.id.include_buttons);
        btn_help = includeView.findViewById(R.id.btn_help);
        btn_back = includeView.findViewById(R.id.btn_back);

        btn_help.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(XianLangTestActivity.this, Help.class);
                int numberToSend = 0; // 要传递的数字
                intent.putExtra("key_number", numberToSend);
                startActivity(intent);
            }
        });
        btn_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });


    }

    Handler handler =new Handler() {
        @Override
        public void handleMessage(@NonNull Message msg) {
            if (msg != null && msg.obj != null) {
                String resData = msg.obj.toString();
                if (msg.what == 1) {
                    tv_checkResult.setText(resData);

                }

            }
        }
    };



    public void addData(){
        keyValuePairsList.add(new KeyValuePair("T1",15,30));
        keyValuePairsList.add(new KeyValuePair("T2",14,29));
        keyValuePairsList.add(new KeyValuePair("T3",13,28));
        keyValuePairsList.add(new KeyValuePair("T4",12,27));
        keyValuePairsList.add(new KeyValuePair("T5",11,26));
        keyValuePairsList.add(new KeyValuePair("T6",10,25));
        keyValuePairsList.add(new KeyValuePair("T7",9,24));
        keyValuePairsList.add(new KeyValuePair("T8",8,7
        ));
        keyValuePairsList.add(new KeyValuePair("R1",38,23));
        keyValuePairsList.add(new KeyValuePair("R2",37,22));
        keyValuePairsList.add(new KeyValuePair("R3",36,21));
        keyValuePairsList.add(new KeyValuePair("R4",35,20));
        keyValuePairsList.add(new KeyValuePair("R5",34,19));
        keyValuePairsList.add(new KeyValuePair("R6",33,18));
        keyValuePairsList.add(new KeyValuePair("R7",32,17));
        keyValuePairsList.add(new KeyValuePair("R8",31,16));

    }




    public void clearArray(){

        is_1_listPosition.clear();
        listOfLists.clear();




    }
    private void  closeDetect(){

        isStartDetect = false;

        tv_checkResult.setText("");

        SingleSelectAdapter.clickPosition = -1;
        for (int i = 0; i < itemList.size(); i++) {
            setXianState(i,0,"");
        }
        for (int i  = 0;i<dectectItems.size();i++){
            dectectItems.get(i).setState(0);

        }

        for (int i  = 0;i<ioItems.size();i++){
            ioItems.get(i).setSelected(false);

        }
        singleSelectAdapter.notifyDataSetChanged();

        adapter.notifyDataSetChanged();
        detectItemAdapter.notifyDataSetChanged();


    }

    public void initView(){

        tv_detectResult = findViewById(R.id.tv_result);
        tv_checkResult = findViewById(R.id.tv_checkResult);
        btn_startDetect = findViewById(R.id.btn_startDetect);
        bt_manualDetect = findViewById(R.id.bt_manualDetect);
        bt_singleTest = findViewById(R.id.bt_singleTest);

        tv_checkResult.setText("");



        bt_manualDetect.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                testType = 2;
                if (isopen||isSingleOpen){
                    tv_checkResult.setText("请先停止其他检测");
                    Toast.makeText(XianLangTestActivity.this,"请先停止其他检测",Toast.LENGTH_SHORT).show();
                    return;
                }



                if (isHandOpen){
                    bt_manualDetect.setText("开始手动检测");


                    isHandOpen =false;
                    closeDetect();

                }else {
                    bt_manualDetect.setText("停止手动检测");

                    isStartDetect = true;
                    startDecdect();
                    isHandOpen =true;

                }
                
                

            }
        });
        bt_singleTest.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                testType = 3;

                if (isopen||isHandOpen){
                    tv_checkResult.setText("请先停止其他检测");
                    Toast.makeText(XianLangTestActivity.this,"请先停止其他检测",Toast.LENGTH_SHORT).show();
                    return;
                }


                if (isSingleOpen){
                    bt_singleTest.setText("开始单线检测");


                    isSingleOpen =false;
                    closeDetect();

                }else {
                    bt_singleTest.setText("停止单线检测");

                    isStartDetect = true;
                    startDecdect();
                    isSingleOpen =true;

                }

            }
        });





        btn_startDetect.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                testType = 1;
                if (isSingleOpen||isHandOpen){
                    tv_checkResult.setText("请先停止其他检测");
                    Toast.makeText(XianLangTestActivity.this,"请先停止其他检测",Toast.LENGTH_SHORT).show();
                    return;
                }



                if (isopen){
                    btn_startDetect.setText("开始自动检测");


                    isopen =false;
                    closeDetect();

                }else {
                    btn_startDetect.setText("停止自动检测");

                    isStartDetect = true;
                    startDecdect();
                    isopen =true;

                }

                                                                                                                            }
        });

     /*   bt_singleTest.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (!isStartDetect){

                    return;
                }

                switch (testPosition){
                    case 0://选择待测线
                        if (clickNum ==3){
                            if (values[0]==3){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                    Log.d("lcccc", "1");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T1环或芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T1环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T1环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T1环芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T1环或芯错位");
                                }
                                setXianState(testPosition,2);


                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[0]==1){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T1芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T1芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T1芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T1芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T1芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[0]==2){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T1环短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T1环错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T1环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T1环短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T1环错位");
                                }


                            }

                        }

                        break;
                    case 1:

                        if (clickNum ==3){
                            if (values[0]==12){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T2环或芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T2环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T2环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T2环芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T2环或芯错位");
                                }
                                setXianState(testPosition,2);


                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[0]==4){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T2芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T2芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T2芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T2芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T2芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[0]==8){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T2环短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T2环错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T2环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T2环短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T2环错位");
                                }


                            }

                        }

                        break;
                    case 2:
                        if (values[0]==48&&values[1]==0&&values[2]==0&&values[3]==0){

                            setXianState(testPosition,1);

                        }else {
                            setXianState(testPosition,2);


                        }
                        if (clickNum ==3){
                            if (values[0]==48){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T3环或芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T3环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T3环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T3环芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T3环或芯错位");
                                }
                                setXianState(testPosition,2);


                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[0]==16){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T3芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T3芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T3芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T3芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T3芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[0]==32){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T3环短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T3环错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T3环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T3环短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T3环错位");
                                }


                            }

                        }

                        break;
                    case 3:
                        if (clickNum ==3){
                            if (values[0]==192){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T4环或芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T4环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T4环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T4环芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T4环或芯错位");
                                }
                                setXianState(testPosition,2);


                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[0]==64){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T4芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T4芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T4芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T4芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T4芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[0]==128){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T4环短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T4环错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T4环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T4环短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T4环错位");
                                }


                            }

                        }

                        break;
                    case 4:

                        if (clickNum ==3){
                            if (values[0]==768){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T5环或芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T5环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T5环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T5环芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T5环或芯错位");
                                }
                                setXianState(testPosition,2);


                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[0]==256){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T5芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T5芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T5芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T5芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T5芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[0]==512){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T5环短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T5环错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T5环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T5环短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T5环错位");
                                }


                            }

                        }

                        break;
                    case 5:

                        if (clickNum ==3){
                            if (values[0]==3072){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T6环或芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T6环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T6环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T6环芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T6环或芯错位");
                                }
                                setXianState(testPosition,2);


                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[0]==1024){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T6芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T6芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T6芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T6芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T6芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[0]==2048){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T6环短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T6环错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T6环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T6环短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T6环错位");
                                }


                            }

                        }

                        break;
                    case 6:
                        if (clickNum ==3){
                        if (values[0]==12288){//正确亮起值
                            if (values[1]==0&&values[2]==0&&values[3]==0){
                                setXianState(testPosition,1);
                                setResultText("检测通过");
                            }else{
                                setXianState(testPosition,2);
                                setResultText("检测不通过,T7环或芯短路");
                            }

                        } else if (values[0]==0){
                            if (values[1]!=0||values[2]!=0||values[3]!=0){
                                setResultText("检测不通过，T7环或芯错位");
                            }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                setResultText("检测不通过,T7环或芯开路");
                            }

                        }else {
                            if (values[1]!=0||values[2]!=0||values[3]!=0){
                                setResultText("检测不通过，T7环芯短路");
                            }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                setResultText("检测不通过,T7环或芯错位");
                            }
                            setXianState(testPosition,2);


                        }


                    } else if (clickNum==1) {     //拉高1个
                        if (values[0]==4096){//正确亮起值
                            if (values[1]==0&&values[2]==0&&values[3]==0){
                                setXianState(testPosition,1);
                                setResultText("检测通过");

                            }else{
                                setXianState(testPosition,2);
                                setResultText("检测不通过,T7芯短路");
                            }

                        } else if (values[0]==0){
                            if (values[1]!=0||values[2]!=0||values[3]!=0){
                                setResultText("检测不通过，T7芯错位");
                            }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                setResultText("检测不通过,T7芯开路");
                            }
                            setXianState(testPosition,2);

                        }else {
                            if (values[1]!=0||values[2]!=0||values[3]!=0){
                                setResultText("检测不通过，T7芯短路");
                            }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                setResultText("检测不通过,T7芯错位");
                            }
                            setXianState(testPosition,2);


                        }

                    }else if (clickNum==2){  //拉高另一个·
                        if (values[0]==8192){//正确亮起值
                            if (values[1]==0&&values[2]==0&&values[3]==0){
                                setXianState(testPosition,1);
                                setResultText("检测通过");

                            }else{
                                setXianState(testPosition,2);
                                setResultText("检测不通过,T7环短路");
                            }

                        } else if (values[0]==0){
                            if (values[1]!=0||values[2]!=0||values[3]!=0){
                                setResultText("检测不通过，T7环错位");
                            }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                setResultText("检测不通过,T7环开路");
                            }
                            setXianState(testPosition,2);

                        }else {
                            setXianState(testPosition,2);

                            if (values[1]!=0||values[2]!=0||values[3]!=0){
                                setResultText("检测不通过，T7环短路");
                            }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                setResultText("检测不通过,T7环错位");
                            }


                        }

                    }

                        break;
                    case 7:
                        if (clickNum ==3){
                            if (values[0]==49152){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T8环或芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T8环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T8环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T8环芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T8环或芯错位");
                                }
                                setXianState(testPosition,2);


                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[0]==16384){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T8芯短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T8芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T8芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T8芯短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T8芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[0]==32768){//正确亮起值
                                if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,T8环短路");
                                }

                            } else if (values[0]==0){
                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T8环错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T8环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[2]!=0||values[3]!=0){
                                    setResultText("检测不通过，T8环短路");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,T8环错位");
                                }

                            }

                        }

                        break;
                    case 8:

                        if (clickNum ==3){
                            if (values[2]==3){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }
                                setXianState(testPosition,2);

                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[2]==1){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[2]==2){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }

                            }

                        }


                        break;
                    case 9:

                        if (clickNum ==3){
                            if (values[2]==12){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }
                                setXianState(testPosition,2);

                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[2]==4){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[2]==8){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }

                            }

                        }


                        break;
                    case 10:

                        if (clickNum ==3){
                            if (values[2]==48){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }
                                setXianState(testPosition,2);

                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[2]==16){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[2]==32){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }

                            }

                        }



                        break;
                    case 11:


                        if (clickNum ==3){
                            if (values[2]==192){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }
                                setXianState(testPosition,2);

                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[2]==64){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[2]==128){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }

                            }

                        }



                        break;
                    case 12:
                        if (clickNum ==3){
                            if (values[2]==768){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }
                                setXianState(testPosition,2);

                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[2]==256){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[2]==512){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }

                            }

                        }




                        break;
                    case 13:

                        if (clickNum ==3){
                            if (values[2]==3072){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }
                                setXianState(testPosition,2);

                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[2]==1024){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[2]==2048){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }

                            }

                        }




                        break;
                    case 14:

                        if (clickNum ==3){
                            if (values[2]==12288){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }
                                setXianState(testPosition,2);

                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[2]==4096){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[2]==8192){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }

                            }

                        }




                        break;
                    case 15:
                        if (clickNum ==3){
                            if (values[2]==49152){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");
                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯开路");
                                }

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"环或芯错位");
                                }
                                setXianState(testPosition,2);

                            }


                        } else if (clickNum==1) {     //拉高1个
                            if (values[2]==16384){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }else if (values[1]==0&&values[2]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"芯开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                if (values[1]!=0||values[0]!=0||values[3]!=0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setResultText("检测不通过,R"+(testPosition-7)+"芯错位");
                                }
                                setXianState(testPosition,2);


                            }

                        }else if (clickNum==2){  //拉高另一个·
                            if (values[2]==32768){//正确亮起值
                                if (values[1]==0&&values[0]==0&&values[3]==0){
                                    setXianState(testPosition,1);
                                    setResultText("检测通过");

                                }else{
                                    setXianState(testPosition,2);
                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }

                            } else if (values[2]==0){
                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环开路");
                                }
                                setXianState(testPosition,2);

                            }else {
                                setXianState(testPosition,2);

                                if (values[1]!=0||values[0]!=0||values[3]!=0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环短路");
                                }else if (values[1]==0&&values[0]==0&&values[3]==0){

                                    setResultText("检测不通过,R"+(testPosition-7)+"环错位");
                                }

                            }

                        }




                        break;

                }
                singleSelectAdapter.notifyDataSetChanged();



            }
        });


   */ }
    public void setResultText(String result){

        tv_detectResult.setText(result);

    }

    public void setXianState(int position,int state,String error){


        itemList.get(position).setStatus(state);

        Log.d("saveData", "setXianState: ----  "+itemList.get(position).getStatus());
        Log.d("saveData", "setXianStateLaststate: ----  "+itemList.get(position).getLastStatus());

        if (state==1){
            itemList.get(position).setTitle("PASS");
            if (itemList.get(position).getLastStatus()!=itemList.get(position).getStatus()){
                itemList.get(position).setLastStatus(itemList.get(position).getStatus());
                saveTestResult("线缆检测",itemList.get(position).getTitle0(),"","通过");

            }




        }else if (state==2){
            itemList.get(position).setTitle("NG");

            if (itemList.get(position).getLastStatus()!=itemList.get(position).getStatus()){
                itemList.get(position).setLastStatus(itemList.get(position).getStatus());
                saveTestResult("线缆检测",itemList.get(position).getTitle0(),error,"不通过");

            }
//            AlarmHelper.playBeepAlarm(XianLangTestActivity.this);


        }else {
//            itemList.get(position).setTitle("待测");
        }

        itemList.get(position).setSelected(false);


    }
    public void  initRecycleView(){
        recyclerView = findViewById(R.id.recycler_view);
        GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
        recyclerView.setLayoutManager(layoutManager);
        // 添加间距装饰器
        int spacing = getResources().getDimensionPixelSize(R.dimen.grid_spacing);
        recyclerView.addItemDecoration(new GridSpacingItemDecoration(2, spacing, true));
        adapter = new IoAdapter(ioItems);
        recyclerView.setAdapter(adapter);
        adapter.setOnItemClickListener(position -> {

            isStart = true;
            itemPosition = position;
            isOnClick = true;

            // 切换选中状态
            IoItem item = ioItems.get(position);
            isItemSelcet = item.isSelected();

            item.setSelected(!item.isSelected());


            // 通知适配器该项已更改
            adapter.notifyItemChanged(position);

        });

    }

    public void  initDectRecycleView(){
        recyclerViewDecdect = findViewById(R.id.recyclerLong_view);
        GridLayoutManager layoutManager = new GridLayoutManager(this, 16);
        recyclerViewDecdect.setLayoutManager(layoutManager);

        // 添加间距装饰器
        int spacing = getResources().getDimensionPixelSize(R.dimen.grid_spacing);
        recyclerViewDecdect.addItemDecoration(new GridSpacingItemDecoration(16, spacing, true));
        detectItemAdapter = new DetectItemAdapter(dectectItems);
        recyclerViewDecdect.setAdapter(detectItemAdapter);
        detectItemAdapter.setOnItemClickListener(position -> {

            IoItem item = dectectItems.get(position);
            isItemSelcet = item.isSelected();

            item.setSelected(!item.isSelected());
            detectItemAdapter.notifyItemChanged(position);

        });

    }
    public void  initXianRecycleView(){
        rv_title = findViewById(R.id.rv_title);

        rv_selcet = findViewById(R.id.rv_selcet);
        GridLayoutManager layoutManager = new GridLayoutManager(this, 8);
        GridLayoutManager layoutManager1 = new GridLayoutManager(this, 8);

        rv_selcet.setLayoutManager(layoutManager);
        rv_title.setLayoutManager(layoutManager1);

        // 添加间距装饰器
        int spacing = getResources().getDimensionPixelSize(R.dimen.grid_spacing);
        rv_selcet.addItemDecoration(new GridSpacingItemDecoration(8, spacing, true));
        rv_title.addItemDecoration(new GridSpacingItemDecoration(8, spacing, true));

        titleItemAdapter = new TitleItemAdapter(titleItems);
        singleSelectAdapter = new SingleSelectAdapter(itemList);
        rv_selcet.setAdapter(singleSelectAdapter);
        rv_title.setAdapter(titleItemAdapter);
        singleSelectAdapter.setOnItemClickListener(position -> {

            Log.d("tv_checkResult", "111: --");
            testPosition = position;
            if (itemList.get(position).getStatus()==2){
                tv_checkResult.setAlpha(1.0F);


            }else {
                Log.d("tv_checkResult", "initXianRecycleView: --");
                tv_checkResult.setAlpha(0.0F);

            }


        });



    }

    public void  sentTvData(String str){
        Message message =Message.obtain();


        message.obj = str;
        message.what = 1;
        handler.sendMessage(message);
    }

    


    public void  readTask(){


        while (isStartDetect){
            //接收数据
            values = modbusTCPClient2.readHoldingRegisters(1, 4, 4);


            if (values != null) {
                clearArray();

                for (int i= 0;i<values.length ;i++) {
                    // 转换为二进制字符串（自动去掉前导零）
                    String binary = Integer.toBinaryString(values[i]);
                    int bitLength = binary.length(); // 有效位长度

                    // 存储"1"的位置（从最低位开始计数，0表示最低位）


                    // 从最低位（字符串末尾）向最高位遍历
                    for (int j = binary.length() - 1; j >= 0; j--) {
                        if (binary.charAt(j) == '1') {
                            // 计算位位置：字符串索引i对应的位位置 = (bitLength - 1 - i)
                            int bitPosition = bitLength - 1 - j;
                            switch (i){
                                case 0:
                                    is_1_listPosition.add(bitPosition);
                                    break;
                                case 1:
                                    is_1_listPosition.add(bitPosition+16);
                                    break;
                                case 2:
                                    is_1_listPosition.add(bitPosition+32);
                                    break;
                                case 3:
                                    is_1_listPosition.add(bitPosition+48);
                                    break;


                            }

                        }
                    }


                }

                for (int i =0;i<dectectItems.size();i++){
                    dectectItems.get(i).setState(0);

                }

                for (int i = 0;i<is_1_listPosition.size();i++){
                    dectectItems.get(is_1_listPosition.get(i)).setState(1);

                    Log.d("readTask", "readTask:is_1_listPosition  "+is_1_listPosition
                            .get(i));
                }
                testPosition = SingleSelectAdapter.clickPosition;

                if (testType==1){




                    for (int i  = 0; i  <keyValuePairsList.size() ; i ++) {
                        int valueHuang = keyValuePairsList.get(i).getHuang();
                        int valueXin = keyValuePairsList.get(i).getXin();

                        if (is_1_listPosition.contains(valueHuang)&&is_1_listPosition.contains(valueXin)){

                            sentTvData(keyValuePairsList.get(i).getKey()+"检测通过");


                            setXianState(i,1,"");
                        }else {

//                            sentTvData(keyValuePairsList.get(i).getKey()+"检测不通过");

                        }

                    }

                }else if (testType==2){
                    if (testPosition==-1){
                        sentTvData("请先选择线缆");

                        return;
                    }


                    boolean isExistHuang,isExistXin;
                    String xianName = keyValuePairsList.get(testPosition).getKey();
                    isExistHuang = is_1_listPosition.contains(keyValuePairsList.get(testPosition).getHuang());
                    isExistXin = is_1_listPosition.contains(keyValuePairsList.get(testPosition).getXin());
                    if (clickNum==3){
                        if (is_1_listPosition.size()==2){

                            if (isExistXin&&isExistHuang){


                                sentTvData(xianName+"检测通过");
                                setXianState(testPosition,1,"");

                            }else {
                                sentTvData(xianName+"检测不通过"+xianName+"环或芯错位");

                                setXianState(testPosition,2,xianName+"环或芯错位");


                            }

                        }else if(is_1_listPosition.size()>2){

                            sentTvData(xianName+"检测不通过,"+xianName+"环或芯短路");

                            setXianState(testPosition,2,xianName+"环或芯短路");


                        }else if (is_1_listPosition.size()==0){
                            sentTvData(xianName+"检测不通过,"+xianName+"环和芯开路");

                            setXianState(testPosition,2,xianName+"环和芯开路");


                        } else if (is_1_listPosition.size()==1){
                            sentTvData(xianName+"检测不通过,"+xianName+"环或芯开路");
                            setXianState(testPosition,2,xianName+"环或芯开路");

                        }




                    }else if (clickNum==1){

                        if (is_1_listPosition.size()==1){
                            if (isExistXin){
                                sentTvData(xianName+"芯检测通过");

                            }else {
                                sentTvData(xianName+"芯错位");

                            }

                        } else if (is_1_listPosition.size()>1) {

                            sentTvData(xianName+"芯短路");

                        } else if (is_1_listPosition.size()==0) {
                            sentTvData(xianName+"芯开路");


                        }


                    }else if (clickNum==2){

                        if (is_1_listPosition.size()==1){
                            if (isExistHuang){
                                sentTvData(xianName+"环检测通过");

                            }else {
                                sentTvData(xianName+"环错位");

                            }

                        } else if (is_1_listPosition.size()>1) {
                            sentTvData(xianName+"环短路");


                        } else if (is_1_listPosition.size()==0) {
                            sentTvData(xianName+"环开路");


                        }
                    }



                }else {
                    boolean singleXIn = is_1_listPosition.contains(32);
                    boolean singleHuang= is_1_listPosition.contains(33);

                    if (clickNum==3){
                        if (is_1_listPosition.size()==2){
                            if (singleXIn&&singleHuang){
                                sentTvData("单发检测通过");


                            }else {
                                sentTvData("单发检测不通过");

                            }

                        }else {
                            sentTvData("单发检测不通过");


                        }

                    } else if (clickNum==2) {
                        if(is_1_listPosition.size()==1){
                            if (singleHuang){
                                sentTvData("单发检测环通过");

                            }else {
                                sentTvData("单发检测环不通过");

                            }

                        }else {
                            sentTvData("单发检测环不通过");

                        }

                    } else if (clickNum==1) {

                        if(is_1_listPosition.size()==1){
                            if (singleXIn){
                                sentTvData("单发检测芯通过");

                            }else {
                                sentTvData("单发检测芯不通过");

                            }

                        }else {
                            sentTvData("单发检测芯不通过");

                        }

                    }

                }


                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        if (!isStartDetect){
                            closeDetect();


                        }

                        singleSelectAdapter.notifyDataSetChanged();

                        detectItemAdapter.notifyDataSetChanged();


                    }
                });


            } else {

            }

        }



    }
    public void saveTestResult(String type, String name, String errorInfo, String state) {
        TestRecord testRecord = new TestRecord();
        testRecord.setDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        testRecord.setType(type);
        testRecord.setName(name);
        testRecord.setErrorInfo(errorInfo);
        testRecord.setState(state);
        Log.d("insert", "saveTestResul[[[[[[[[[ ");

        AppDatabase.getDatabase(XianLangTestActivity.this).testRecordDao().insert(testRecord);
    }

    public  void  writeTask(){
        if (modbusClient != null) {



            while (isStartDetect ) {
                double result = 0;
                if (isOnClick){

                    result = Math.pow(2, itemPosition);
                    if (isItemSelcet){
                        clickNum -= result;
                    }else {
                        clickNum += result;
                    }

                    isOnClick = false;
                }
                    Log.d("lccc", "writeTask: "+clickNum);

                if (clickNum < 65535) {

                    modbusClient.writeMultipleRegisters(1, 32, new int[]{(int)clickNum, 0});

                } else {

                    modbusClient.writeMultipleRegisters(1, 32, new int[]{65535, (int) clickNum-65535});
                }
            }

        }

    }


    public void startDecdect(){

        ioItems.get(0).setSelected(true);
        ioItems.get(1).setSelected(true);
        adapter.notifyDataSetChanged();

        clickNum = 3;




        scheduler = Executors.newSingleThreadScheduledExecutor();
        scheduler1 = Executors.newSingleThreadScheduledExecutor();

        // 2. 定义任务内容
        Runnable task = () -> {
            writeTask();

        };

        Runnable task1 = () -> {
            readTask();

        };
        scheduler.scheduleAtFixedRate(task, 0, 500, TimeUnit.MILLISECONDS);

        scheduler1.scheduleAtFixedRate(task1, 0, 500, TimeUnit.MILLISECONDS);

    }




    @Override
    protected void onDestroy() {
        super.onDestroy();
        isStart = false;
        isStartDetect = false;
        if (scheduler!=null){
            scheduler.shutdown();
        }
        if (scheduler1!=null){
            scheduler1.shutdown();
        }



    }

    @Override
    protected void onStop() {
        super.onStop();
        isStart = false;
        isStartDetect = false;
        if (scheduler!=null){
            scheduler.shutdown();
        }
        if (scheduler1!=null){
            scheduler1.shutdown();
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        isStart = false;
        isStartDetect = false;
        if (scheduler!=null){
            scheduler.shutdown();
        }
        if (scheduler1!=null){
            scheduler1.shutdown();
        }

    }
}